package com.hllxd.hism.star.basic.service.model;

import lombok.Data;

import java.math.BigDecimal;

/**
 * 组合商品明细
 * <p>这个组合商品明细在接口文档里没有 直接找他们要了个类过来</p>
 *
 * @author liuxiongbo
 * @date 2020/12/23 17:38
 **/
@Data
public class BundlingGoodsEntity {
    /**
     * 商品规格ID
     */
    private Long specID = 0L;

    /**
     * 商品ID
     */
    private Long productID;

    /**
     * 商品名称
     */
    private String productName;

    /**
     * 商品编码
     */
    private String productCode;

    /**
     * 集团编号
     */
    private Long groupID;

    /**
     * 售卖单位ID
     */
    private Integer saleUnitID;

    /**
     * 规格内容
     */
    private String specContent;

    /**
     * 售卖单位名称(用于查询展示)
     */
    private String saleUnitName;

    /**
     * 净含量
     */
    private String netQuantity;

    /**
     * 数量
     */
    private Integer specNum;

    /**
     * 最低起购量
     */
    private Integer buyMinNum = 0;

    /**
     * 平台价格
     */
    private BigDecimal productPrice;

    /**
     * 合同价格
     */
    private BigDecimal contractPrice;

    /**
     * 成本价
     */
    private BigDecimal costPrice;

    /**
     * 价格开始有效期
     */
    private String priceStartTime;

    /**
     * 价格有效期结束时间
     */
    private String priceEndTime;

    /**
     * 库存预警值
     */
    private BigDecimal stockWarnNum;

    /**
     * 自动下架值
     */
    private BigDecimal autoOffNum;

    /**
     * 最小订货倍数
     */
    private Float minOrder;

    /**
     * 是否允许小数后1位购买(0-不允许，1-允许，默认0)
     */
    private Byte isDecimalBuy = 0;

    /**
     * 辅助单位状态(0-禁用，1-启用，默认0)
     */
    private Integer assistUnitStatus;

    /**
     * 辅助单位ID
     */
    private Integer assistUnitID;

    /**
     * 辅助单位名称(用于查询展示)
     */
    private String assistUnitName;

    /**
     * 换算比率
     */
    private BigDecimal convertRatio;

    /**
     * 备用字段
     */
    private String note;

    /**
     * 创建人
     */
    private String createby;

    /**
     * 上次维护人
     */
    private String actionBy;

    /**
     * 是否删除（0-正常，1-修改过，2-已删除）
     */
    private Byte action;

    /**
     * 最近一次操作时间
     */
    private Long actionTime;

    /**
     * 创建时间
     */
    private Long createTime;
    /**
     * 标准单位状态(0-禁用，1-启用，默认0)
     */
    private Byte standardUnitStatus = 0;

    /**
     * 订货单位转换率(0-禁用，1-启用，默认0)
     */
    private Byte orderUnitStatus;

    /**
     * 成本单位转换率(0-禁用，1-启用，默认0)
     */
    private Byte costUnitStatus;

    /**
     * 采购单位转换率(0-禁用，1-启用，默认0)
     */
    private Byte purchaseUnitStatus;
    /**
     * sku条码
     */
    private String skuCode;
    /**
     * 转换率
     */
    private BigDecimal ration;
    /**
     * 规格状态(4-已上架，5-未上架)
     */
    private Integer specStatus = 0;

    /**
     * 优惠后价格
     */
    private BigDecimal discountPrice;
    //======================================================扩展字段
    /**
     * 库存数量
     */
    private BigDecimal productStock;

    /**
     * 商品销量
     */
    private BigDecimal productSale;

    /**
     * 操作类型（1-删除，2-新增，3-修改）
     */
    private Integer actionType;

    /**
     * 是否已加入采购清单（1-已加入，2-未加入）
     */
    private Integer isJionPurchaseList;

    /**
     * 库存ID
     */
    private Long stockID;


    private BigDecimal shopcartNum;//购物车数量

    //订单使用
    private BigDecimal convertRate = BigDecimal.ZERO;//转换率
    private String standardUnit;//标准单位
    private BigDecimal standardPrice;//标准单价
    private Long standardSpecID;//标准规格ID
    private String standardSpecCode;//标准规格编码

    /**
     * 总库存
     */
    private BigDecimal totalStock;

    /**
     * 可用库存
     */
    private BigDecimal usableStock;

    /**
     * 占用库存
     */
    private BigDecimal occupiedStock;

    /**
     * 到库存是否不足 true-表示售罄
     */
    private Boolean isLowStock;

    /**
     * 到货提醒类型（1-未设置，2-已设置到货提醒）
     */
    private Integer remindType;

    /**
     * 规格失效原因 1:商品下架 2:售罄 3:不在配送范围 4:暂无报价
     */
    private int invalidType;

    /**
     * 是否选中 0：未选中 1：选中
     */
    private int isSelected;

    /**
     * 转换成标准单位的下单量
     */
    private BigDecimal standardNum;

    /**
     * 是否是辅助单位
     */
    private int isAuxiliaryUnit;

    /**
     * 库存是否充足(1-充足，2-不足)
     */
    private Integer isStock;

    private BigDecimal depositTotalPrice; //押金总金额

    private String standardSpec;//标准单位规格

    private int preferentialPriceType;//此规格是否在自营大厅设置了优惠价(0-不是，1-是)

    private int premiumType;//此规格是否设置了协议价(0-不是，1-是)

    /**
     * 0:非活动商品 1：活动商品
     */
    private Integer discountProduct;

    // =============================================================组合商品特有属性
    /**
     * 商品规格ID
     */
    private Long id;

    /**
     * 明细商品ID
     */
    private Long bgdProductID;

    /**
     * 明细规格ID
     */
    private Long bgdSpecID;

    /**
     * 平台价格
     */
    private BigDecimal specPrice;
}
